M07 Silmukan havaitseminen, osa 2 - IPv4, Reititys
Takaisin opintojakson aikatauluun
Opetusvideot
Dynaaminen reititys (eng. Dynamic Routing)
Viime kappaleessa opimme kytkinverkkojen silmukoista OSI Mallin 2. kerroksella
.
- Kehys tulee edelleen lähetetyksi uudelleen ja uudelleen silmukassa
Sama ilmiö voi tapahtua reititin verkoissa OSI Mallin 3. kerroksella
- Paketti tulee edelleen lähetetyksi uudelleen ja uudelleen silmukassa
Onneksemme OSI Mallin kerroksella 3 on käytössä Time To Live -kenttä joka estää katastrofiset tietoverkon sulamiset.
Staattinen reititys voi helposti muodostaa reitityssilmukoita, jos sen konfiguroi väärin. Tämän vuoksi staattisten reittien automatisoitu asennus on keksitty, eli dynaaminen reititys.
Erot dynaamisen ja staattisen reitityksen välillä
Staattiset reitit on yksinkertaisia ymmärtää, koska ihminen asettaa ne. Yksinkertaisimmillaan ne ovat kylttejä (tämä aliverkko, tämä etäisyys, tähän suuntaan) risteyksissä (reitittimillä).
Dynaaminen reititys onkin erilainen peto taltutettavaksi.
- Reitittimet oppivat toisiltaan
naapuruuksien
(eng.adjacencies
) kautta Naapuruudet
muodostetaan tiettyjen muodollisuuksien lävitse- Tämän jälkeen aliverkkojen saavutettavuustietoja jaetaan
naapureille
Näitä askelmia ratkaisevat useat eri kilpailevat protokollat.
Ratkaisuja
Etäisyysvektori (eng. Distance Vector)
Kuten nimi sanoo, jokainen aliverkko julistetaan olevan tietyn etäisyyden
ja vektorin
päässä. Esim.
etäisyys
= 100 kilometriä
vektori
= luoteeseen
Nämä etäisyydet ja vektorit mainostetaan naapurireitittimille. Jotkut syyttävät näiden mainostusten olevan kuulopuheita
ja mahdollisesti alttiita rikkinäiselle puhelimelle
.
Protokollia tässä etäisyysvektoriperheessä on:
- Border Gateway Protocol - BGP - tähän keskitytään tällä opintojaksolla
- Routing Information Protocol - RIP
- Enhanced Interior Gateway Routing Protocol - EIGRP
Lyhin polku ensin (eng. Shortest Path First)
Tämä perhe dynaamisessa reitityksessä käyttää kaikki samaa algoritmiä; Djistran algoritmi - Shortest Path First.
Algoritmi vaatii täydellisen tietokannan (näkymän) topologiasta. Algoritmi ajetaan tämän tietokannan lävitse löytääkseen/valitakseen lyhimmät polut jokaiseen aliverkkoon. Yksityiskohdat algoritmistä on osa Tietorakenteet ja algoritmit -opintojaksoa.
Protokollat tässä perheessä ovat:
- Open Shortest Path First - OSPF - tähän keskitytään tällä opintojaksolla
- Intermediate System to Intermediate System - IS-IS
OSPF - Open Shortest Path First
OSPF on muodostunut de facto
reititysprotokollaksi useassa eri tietoverkossa.
"OSPF is designed to be run internal to a single Autonomous System. Each OSPF router maintains an identical database describing the Autonomous System's topology. From this database, a routing table is calculated by constructing a shortest-path tree."
Hinta (tai nopeus)
OSPF:n ytimessä on tietoliikenne linkkien hinnat
(eng. cost). Tämä on metriikka
(eng. metric) jolla reittejä voidaan eritellä toisistaan.
Eri (ethernet) linkkinopeuksia käytetään laskemaan/määrittämään tätä hintaa
perustuen oletuskaistaan
(eng. reference-bandwidth
) joka on 100 000 000
tai 10^8
Note
Oletuskaista on siis 100 Mbit/s, eli 100M Ethernet linkin hinta on 1
100 000 000 / 100 000 000 = 1
Jokatapauksessa oletuskaistaa voi muuttaa komennolla
vyos@vyos# set protocols ospf auto-cost reference-bandwidth
Possible completions:
<1-4294967> Reference bandwidth cost in Mbits/sec (default 100)
Warning
Tätä muuttujaa voi muuttaa konfiguraation kautta, mutta sen täytyy olla identtinen kaikissa OSPF -verkon reitittimissä (tai autonomisen alueen sisällä). Tästä varoittaa myös Vyos -käyttöjärjestelmä:
[ protocols ospf auto-cost reference-bandwidth 1000 ]
OSPF: Reference bandwidth is changed.
Please ensure reference bandwidth is consistent across all routers
Naapuruus (eng. Adjacency)
Naapuruudet muodostetaan OSPF -pakettien vaihdon lävitse.
OSPF pakettityyppi | tarkoitus |
---|---|
Hello | Muodostaa ja ylläpitää naapuruuksien tilatietoja naapureiden kanssa |
Database Description Packet | Kuvailee OSPF (linkki-tila ) tietokannan sisältöä |
Link State Request | Pyytää OSPF -tietokannan rivejä naapuroivilta reitittimiltä |
Link State Update | Lähettää linkki-tila päivityksiä (eng. link-state advertisements - LSAs) naapurireitittimille |
Link State Acknowledgement | Kuittaa LSA:n vastaanoton naapurille |
Reititin-ID naapuruudessa
OSPF reitittimien pitää yksilöidä itsensä Reititin-ID:n avulla (eng. router-id
). Tätä käytetään yksilöimään mikä reititin on kukakin tietokannassa. IPv4 osoitetta käytetään yksilöimään reititin.
Yleensä reititin-id
:n valitseminen tapahtuu seuraavasti
- router-id -komento
set protocols ospf parameters router-id <x.x.x.x>
- Korkein binäärinen numero/osoite (muista IPv4 on 32 bittinen muuttuja)
loopback
rajapinnoissa - Korkein binäärinen numero/osoite (muista IPv4 on 32 bittinen muuttuja) muissa rajapinnoissa (esim. ethernet0)
Loopback rajapinta?
Loopback rajapinnat ovat rajapintoja reitittimellä, jotka eivät koskaan sammu ellei laite ole tulessa/käyttöjärjestelmä kaadu.
On järkevää luoda rajapinta joka on "aina ylhäällä", koska se on kätevä - verkkolaitteen hallinta-IP:tä varten - eri reititysprosesseille kuten OSPF, BGP, ...
Tyypillisesti Ethernet portit voivat mennä alas linkkikakoksen takia. Täten jos hallinta-IP on sidottuna yksittäiseen eth0
rajapintaan ja ethernet kaapeli menee poikki. Koko laite "näyttää olevan alhaalla" vaikka sillä voisi olla täysin toimiva osoite rajapinnassa eth1.
Loopback:t eivät "kytkeydy" mihinkään eli niissä voi käyttää /32 aliverkon maskilla olevaa IPv4 osoitetta. Ne yksilöivät yksittäisen reitittimen. Tämän osoitteen voi asettaa komennolla:
set interfaces loopback lo address <x.x.x.x/32>
Muista että yläpuolinen on (todella pieni) aliverkko itsessään ja se täytyy dynaamisesti reitittää tietoverkossa.
Naapuruuden tilat
Naapuruudet menevät eri tilojen lävitse perustuen mitä tietoa on naapurin kanssa vaihdettu.
Naapuruus | Tarkoitus |
---|---|
Down | Mitään tietoa ei ole vaihdettu kenenkään kanssa |
Init | OSPF lähettää Hello paketteja tasaisin väliajoin naapuroiville reitittimille |
Two-way | OSPF on nähnyt toisen reitittimen Hello -paketin! |
ExStart | Kaksi reititintä lähettää Tietokannan kuvaus -paketteja (eng. DataBase Description (DBD) -packets) ja ovat valitsemassa Määriteltyä reititintä (eng. Designated Router ) ethernet segmenttiin. |
Exchange | Kaksi reititintä lähettää Tietokannan kuvaus -paketteja toisilleen ja vertailevat onko heillä täydelliset tietokannat |
Loading | Reititin voi vielä lähettää LSA viestejä toisille reitittimille pyytääkseen lisää tietoa, mutta Lyhin polku ensin -algoritmi on ajossa |
Full adjacency | Lyhin polku ensin -algoritmi on ajettu tietokannan lävitse ja reitittimen reititystaulu on valmiina |
OSPF ei ole nopein mahdollinen protokolla tilakoneeltaan ja algoritmin ajamiselta (suuresta) tietokannasta saadakseen reititystaulun valmiiksi
Ole kärsivällinen! Erityisesti virtuaalikoneillamme...
Naapuruuden muodostavien pakettien vaihto - esimerkki
Wireshark -tiedosto löytyy täältä
Tietokannat
OSPF Tietokannat
Tämä on OSPF:n taustalla toimiva tietokanta. Sen riveinä ja sarakkeina on lopulta eri linkki-tiloja
joita on saatu naapuruuksilta. Tästä muodostuu lopulta yksi iso linkki-tila tietokanta
(eng. link-state database).
Tietokantaa voi tutkia reitittimeltä komennolla show ip ospf database
, mutta sitä ei tarvitse sen enempää ymmärtää. Ongelma tapauksissa reititystaulun kanssa saattaa joskus harhaantua tutkimaan tietokannan rakennetta.
vyos@vyos:~$ show ip ospf database
OSPF Router with ID (192.168.15.254)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
172.16.0.1 172.16.0.1 434 0x80000008 0x4837 2
192.168.15.254 192.168.15.254 447 0x8000000a 0x628c 3
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
25.0.0.1 192.168.15.254 427 0x80000005 0xfb93
vyos@vyos:~$
Lyhin Polku Ensin
-algoritmi (eng. Shortest Path First) ajetaan muodostaakseen Lyhimmän Polun Puun
(eng. Shortest Path Tree).
Reititystietokanta (eng. Routing Information Base - RIB)
Kun Lyhimmän Polun Puu
on luotu, sen lopputulemaa käytetään muodostamaan reititystaulu.
vyos@vyos:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route
O 25.0.0.0/24 [110/100] is directly connected, eth1, 01:40:31
C>* 25.0.0.0/24 is directly connected, eth1, 01:47:15
O>* 172.16.0.0/24 [110/200] via 25.0.0.2, eth1, 01:39:36
O 192.168.0.0/24 [110/1000] is directly connected, eth0.5, 01:40:31
C>* 192.168.0.0/24 is directly connected, eth0.5, 01:47:16
O 192.168.10.0/24 [110/1000] is directly connected, eth0.10, 01:40:31
C>* 192.168.10.0/24 is directly connected, eth0.10, 01:47:15
C>* 192.168.15.0/24 is directly connected, eth0.15, 01:47:15
vyos@vyos:~$
Huom! Samoihin verkkoihin on useita rivejä, mutta >*
merkattu on valittu reitti
ja FIB reitti
(Asennetaan edelleenlähetystietokantaan (eng. forwarding information base) ja käytetään pakettien edelleenlähettämiseen).
Alueet ja roolit (eng. Areas and Roles)
Roolit
Määritelty reititin (eng. Designated Router - DR).
On reititin joka pääasiassa hoitaa linkkitila-päivitysten jakelun verkkosegmentissä johon voi kytkeytyä monia laitteita (kuten Ethernet)
Vara-määritelty reititin (eng. Backup Designated Router - BDR).
On varalla oleva reititin DR:lle, joka tarvittaessa hoitaa linkkitila-päivitysten jakelun verkkosegmentissä johon voi kytkeytyä monia laitteita (kuten Ethernet).
Drother - OSPF:n kykenevä reititin
Kuuntelee DR ja BDR -reitittimiä verkon päivitysten varalta (LSA viestejä) ja ilmoittaa heille myös omat muutoksensa. DR:n vastuulla on lähettää Drotherilta toiselle Drotherille päivitykset.
Alueen reuna reititin - Area Border Router - ABR
OSPF voidaan segmentoida alueisiin (eng. Area) jolloin reitittimet alueilen välillä nimetään ABR:ksi. Niillä on OSPF tietokanta per alue, eli yhdessä ABR:ssä on useita tietokantoja.
Mikä on alue
Alue on yksittäinen OSPF tietokanta. OSPF:n pilkkominen alueisiin johtaa pienempään tietokantaan eli nopeampaan algoritmin läpiajoon. Eli OSPF pilkkonen on kannattavaa, jos verkon koko alkaa aiheuttamaan reitityksessä ongelmia.
On olemassa 'vanha' suositus että OSPF alueella saa olla max 50 reititintä
Todennäköisesti tietokoneiden raudan kehityksen suhteen tämä rajoitus on muuttunut, mutta ... silti.
Jos alueet on segmentoitu, ei yhden alueen linkkiviat vaikuta toiseen. Säästäen tietokantamuutokset pienemmiksi ja täten algoritmien ajotarve vähenee.
Miten alueet pitäisi muodostaa?
Tämä on nyt linkki-tila algoritmien ytimessä.
Alue 0 kutsutaan selkäranka-alueeksi
OSPF:ssä. Kaikki muut alueet pitää olla liitettynä selkäranka alueeseen.
Muussa tapauksessa OSPF muuttuu etäisyys-vektori-reititysprotokollaksi
Tämä ei ole todellakaan mitä halutaan
Konfiguroidaan OSPF
Tässä kappaleessa on paljon komentoja, jotka yhteenvedetään (tai osaa jopa toistetaan) tässä
OSPF:n pystytys
set protocols ospf parameters router-id <x.x.x.x>
Jos haluat router-id
:n asettamista manuaalisesti, käytä set protocols ospf parameters router-id <x.x.x.x>
jossa <x.x.x.x>
on esimerkiksi loopbackin IPv4 osoite.
set protocols ospf area 0 network <x.x.x.x/xx>
Jossa <x.x.x.x/xx>
on niiden aliverkkojen verkon osoite jotka liittyvät OSPF reitittimeen.
Tällä komennolla on kaksoistarkoitus
- Se lähettää ja vastaanottaa
OSPF Hello
viestejä rajapinnasta johon kyseinen verkko on konfiguroitu - Se lisää verkon OSPF tietokantaan ja rupeaa mainostamaan sitä naapureille
Komentoja lisäämään kyberturvallisuutta OSPF -reititykseen
set protocols ospf passive-interface <interface>
set protocols ospf area 0 network <x.x.x.x/xx>
-komento alkaa lähettämään OSPF Hello
paketteja annettuun <x.x.x.x/xx>
-aliverkkoon. Tämä ei ole aina haluttu ilmiö, koska sitä tarvitaan myös verkon mainostamiseen naapuroiville reitittimille. Poistaaksesi OSPF Hello
pakettien lähetyksen, voit käyttää yläpuolista komentoa (esim. poistaaksesi OSPF Hello
työasema VLAN:sta)
set protocols ospf area 0 authentication md5
Jos lisäturvallisuutta kaivataan, voivat OSPF naapurit tunnistautua toisillensa käyttäen MD5
tarkastussumma-algoritmia.
Käytetty "salasana" (tai siitä johdettu tarkastussumma) pitää määrittää per rajapinta.
set interfaces ethernet eth0 ip ospf authentication md5 key-id <id> md5-key <MD5 Key (16 characters or less)>
Käytetty "salasana" (tai siitä johdettu tarkastussumma) pitää määrittää per rajapinta.
Example
set interfaces ethernet eth0 ip ospf authentication md5 key-id 1 md5-key kissa123
Info: Mikä on MD5-key?
"kissa123" tuottaa (md5) tarkastussumman 7b2b0f47573b18442d941b7487a76804
OSPF HELLO viesteihin.
Tarkastussumman voi tarkastaaa esim. student.labranet.jamk.fi
-palvelimella, jos haluat.
[sahka@student ~]$ echo kissa123 > md5_passu.txt
[sahka@student ~]$ cat md5_passu.txt
kissa123
[sahka@student ~]$ md5sum md5_passu.txt
7b2b0f47573b18442d941b7487a76804 md5_passu.txt
[sahka@student ~]$
Tarkastussummafunktiot on osa Kyberturvallisuus -opintojaksoa.
Tarkastellaan OSPF toiminallisuutta
Ensimmäinen asia on yleensä tarkastella naapuruuksien muodostumista. Näitä tiloja voi seurata alapuolisella komennolla.
show ip ospf neighbor
vyos@vyos:~$ show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL
172.16.0.1 1 Full/Backup 32.794s 25.0.0.2 eth1:25.0.0.1 0 0 0
Yleensä seuraava vaihe jätetään välitse ja hypätään suoraan reititystauluun, mutta joskus OSPF tietokannan läpikäynti on tarpeellista. Tämä on myös hyvä huomata että muodostuu opiskellessa protokollaa. Tietokantaa voi siis tarkastella alapuoleisella komennolla.
show ip ospf database
vyos@vyos:~$ show ip ospf database
OSPF Router with ID (192.168.15.254)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
172.16.0.1 172.16.0.1 1125 0x8000000a 0x4439 2
192.168.15.254 192.168.15.254 739 0x80000011 0x4bd5 3
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
25.0.0.1 192.168.15.254 1109 0x80000007 0xf795
Lopputuote on kuitenkin maali johon tähdätään, eli reititystauluun asetetut reitit tarkastetaan alapuoleisella komennolla.
show ip route
vyos@vyos:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route
O 25.0.0.0/24 [110/1] is directly connected, eth1, 00:43:25
C>* 25.0.0.0/24 is directly connected, eth1, 02:50:07
O>* 172.16.0.0/24 [110/101] via 25.0.0.2, eth1, 00:43:25
O 192.168.0.0/24 [110/1] is directly connected, eth0.5, 00:41:55
C>* 192.168.0.0/24 is directly connected, eth0.5, 02:50:08
O 192.168.10.0/24 [110/1] is directly connected, eth0.10, 00:41:55
C>* 192.168.10.0/24 is directly connected, eth0.10, 02:50:07
C>* 192.168.15.0/24 is directly connected, eth0.15, 02:50:07
Reititystaulusta voi myös suodattaa pelkät OSPF -reitit alapuoleisella komennolla.
show ip route ospf
vyos@vyos:~$ show ip route ospf
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route
O 25.0.0.0/24 [110/1] is directly connected, eth1, 00:43:49
O>* 172.16.0.0/24 [110/101] via 25.0.0.2, eth1, 00:43:49
O 192.168.0.0/24 [110/1] is directly connected, eth0.5, 00:42:19
O 192.168.10.0/24 [110/1] is directly connected, eth0.10, 00:42:19
Jos rupeaa epäilemään ongelmia OSPF instanssissa reitittimellä. Voi yleisiä OSPF asetuksia tarkastella alapuolisella komennolla.
show ip ospf
vyos@vyos:~$ show ip ospf
OSPF Routing Process, Router ID: 192.168.15.254
Supports only single TOS (TOS0) routes
This implementation conforms to RFC2328
RFC1583Compatibility flag is disabled
OpaqueCapability flag is disabled
Initial SPF scheduling delay 0 millisec(s)
Minimum hold time between consecutive SPFs 50 millisec(s)
Maximum hold time between consecutive SPFs 5000 millisec(s)
Hold time multiplier is currently 1
SPF algorithm last executed 38m50s ago
Last SPF duration 74 usecs
SPF timer is inactive
LSA minimum interval 5000 msecs
LSA minimum arrival 1000 msecs
Write Multiplier set to 20
Refresh timer 10 secs
Number of external LSA 0. Checksum Sum 0x00000000
Number of opaque AS LSA 0. Checksum Sum 0x00000000
Number of areas attached to this router: 1
Area ID: 0.0.0.0 (Backbone)
Number of interfaces in this area: Total: 3, Active: 3
Number of fully adjacent neighbors in this area: 1
Area has no authentication
SPF algorithm executed 7 times
Number of LSA 3
Number of router LSA 2. Checksum Sum 0x0000900e
Number of network LSA 1. Checksum Sum 0x0000f795
Number of summary LSA 0. Checksum Sum 0x00000000
Number of ASBR summary LSA 0. Checksum Sum 0x00000000
Number of NSSA LSA 0. Checksum Sum 0x00000000
Number of opaque link LSA 0. Checksum Sum 0x00000000
Number of opaque area LSA 0. Checksum Sum 0x00000000
Jos on jotain ongelmia naapuruuksien muodostumisessa, on hyvä tarkastaa OSPF:n asetuksia eri rajapinnoissa:
show ip ospf interface
vyos@vyos:~$ show ip ospf interface
eth0.5 is up
ifindex 4, MTU 1500 bytes, BW 100 Mbit <UP,BROADCAST,RUNNING,MULTICAST>
Internet Address 192.168.0.254/24, Broadcast 192.168.0.255, Area 0.0.0.0
MTU mismatch detection: enabled
Router ID 192.168.15.254, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DR, Priority 1
No backup designated router on this network
Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
Hello due in 6.874s
Neighbor Count is 0, Adjacent neighbor count is 0
eth0.10 is up
ifindex 6, MTU 1500 bytes, BW 100 Mbit <UP,BROADCAST,RUNNING,MULTICAST>
Internet Address 192.168.10.254/24, Broadcast 192.168.10.255, Area 0.0.0.0
MTU mismatch detection: enabled
Router ID 192.168.15.254, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DR, Priority 1
No backup designated router on this network
Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
Hello due in 7.171s
Neighbor Count is 0, Adjacent neighbor count is 0
eth1 is up
ifindex 3, MTU 1500 bytes, BW 1000 Mbit <UP,BROADCAST,RUNNING,MULTICAST>
Internet Address 25.0.0.1/24, Broadcast 25.0.0.255, Area 0.0.0.0
MTU mismatch detection: enabled
Router ID 192.168.15.254, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DR, Priority 1
Backup Designated Router (ID) 172.16.0.1, Interface Address 25.0.0.2
Saved Network-LSA sequence number 0x80000007
Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
Hello due in 6.656s
Neighbor Count is 1, Adjacent neighbor count is 1
Jatka harjoituksiin!
Kertaa materiaalia pienellä tietovisalla?
Tietoverkot Quiz - M07 Silmukan havaitseminen, osa 2 - IPv4, Reititys
Takaisin opintojakson aikatauluun?
Takaisin opintojakson aikatauluun
Lisenssi
Tämän opintojakson materiaalin on kirjoittanut Karo Saharinen ja se on lisensoitu Creative Commons Nimeä-EiKaupallinen-EiMuutoksia 4.0 Kansainvälinen -lisenssillä.